const { port } = require("./config");

module.exports = {
  apps: [
    {
      name: "blog", // 应用程序的名称
      script: "app.js", // 入口文件
      instances: "3", // 进程实例数量，通常设置为 "max" 使用所有可用 CPU 核心
      exec_mode: "cluster", // 进程运行模式，可以是 "cluster" 或 "fork"
      autorestart: true, // 当应用程序崩溃或退出时，是否自动重启
      watch: true, // 是否监视文件的变化并自动重新启动应用程序（仅开发环境建议开启）
      ignore_watch: ["node_modules", "logs"], // 忽略监听的文件或目录
      max_memory_restart: "1G", // 当进程占用内存超过此值时自动重启
      env: {
        NODE_ENV: "development",
        PORT: port,
      }, // 开发环境的配置选项，指定NODE_ENV为development，端口号为3000
      env_production: {
        NODE_ENV: "production",
        PORT: port,
      }, // 生产环境的配置选项，指定NODE_ENV为production，端口号为8080。
      log_date_format: "YYYY-MM-DD HH:mm:ss", // 日志日期格式
      error_file: "logs/error.log", // 错误日志文件路径
      out_file: "logs/out.log", // 标准输出日志文件路径
      merge_logs: true, // 合并标准输出和错误日志
    },
  ],
  // deploy: {
  //   production: {
  //     user: "deploy-user", // 用于 SSH 连接的用户名
  //     host: "example.com", // 目标服务器的主机名或 IP 地址
  //     ref: "origin/master", // Git 分支或标签，用于部署
  //     repo: "git@example.com:my-node-app.git", // Git 仓库的 URL
  //     path: "/var/www/my-node-app", // 目标部署路径
  //     "pre-deploy-local": "echo 'This is a local command executed before deploy'", // 部署前在本地执行的命令
  //     "post-deploy": "npm install && pm2 reload ecosystem.config.js --env production", // 部署后执行的命令
  //     "pre-setup": "mkdir /var/www/my-node-app/shared", // 部署前设置服务器环境的命令
  //   },
  // },
};
